var UsuarioController = (function () {

    var np = notify.processing();

    function setDefaultAjaxSetup(obj) {
        var postdata;
        if (obj.postdata !== undefined) {
            postdata = {
                postdata: JSON.stringify(obj.postdata)
            }
        } else {
            postdata = {};
        }
        $.ajaxSetup({
            type: 'post',
            dataType: 'json',
            data: postdata,
            success: obj.success || function () { },
            error: obj.error || function () { },
            complete: obj.complete || function () { }
        });
    }




    function carregarTabelaUsuario(obj) {

        setDefaultAjaxSetup(obj);
        $.ajax({
            //url: '/Usuarios/carregarTabelaUsuario'
            url: 'Usuarios'
        });
    }


    function autenticarUsuario(obj) {
        setDefaultAjaxSetup(obj);
        np.show();
        $.ajax({
            url: '/Usuario/AutenticarUsuario'
        });
    }



    function LoadTipoUsuario(obj) {
        setDefaultAjaxSetup(obj);
        $.ajax({
            url: '/Usuario/LoadTipoUsuario'
        });
    }

    function salvarUsuario(obj) {
        setDefaultAjaxSetup(obj);
        np.show();
        $.ajax({
            url: '/Usuario/SalvarUsuario',
            complete: function (jqXHR, textStatus) {
                np.hide();
                obj.complete || function () { }
            }
        });
    }

    function ApagarUsuario(obj) {
        setDefaultAjaxSetup(obj);
        np.show();
        $.ajax({
            url: '/Usuario/ApagarUsuario',
            complete: function (jqXHR, textStatus) {
                np.hide();
                obj.complete || function () { }
            }
        });
    }


    function UpdateUsuario(obj) {
        setDefaultAjaxSetup(obj);
        np.show();
        $.ajax({
            url: '/Usuario/UpdateUsuario',
            complete: function (jqXHR, textStatus) {
                np.hide();
                obj.complete || function () { }
            }
        });
    }


    //    function login(obj) {
    //        setDefaultAjaxSetup(obj);
    //        np.show();
    //        $.ajax({
    //            url: '/Usuario/LoginUsuario',
    //            complete: function (jqXHR, textStatus) {
    //                np.hide();
    //                obj.complete || function () { }
    //            }
    //        });
    //    }


//    function recuperarEmail(obj) {
//        alert('email');
//        setDefaultAjaxSetup(obj);
//        np.show();
//        $.ajax({
//            url: '/Usuario/recuperarEmail'

//        });
//    }

    return {
        carregarTabelaUsuario: carregarTabelaUsuario,
        LoadTipoUsuario: LoadTipoUsuario,
        salvarUsuario: salvarUsuario,
        ApagarUsuario: ApagarUsuario,
        UpdateUsuario: UpdateUsuario,
        //        login: login,
        autenticarUsuario: autenticarUsuario
//        recuperarEmail: recuperarEmail



    }

} ());